package com.cskaoyan.javase.object._0introduction;

/**
 * Object类概述
 * Object类，虽然我们没有详细了解，但我们知道了：Object类是所有类继承层次的祖先类，Java中所有类（包括数组）都直接或者间接的继承自该类，都实现了该类的方法。
 *
 * 自定义类时，我们并不需要特别的标注`extends Object`，这是一个隐式的继承。如果一个类没有明确的指出它的父类，Object类就默认是这个类的父类，`extends Object`则已经隐含了，不需要写出来。
 *
 * Object是没有成员变量定义的，并且由于子类对象的隐式初始化，Object类有且仅有一个默认提供的无参构造方法。所以我们学习Object类，主要关注它的成员方法。
 *
 * Object类当中六个常见的成员方法：
 *
 * public final Class getClass()  获取Class对象,Class对象是反射的基础
 * public String toString()  提供了将对象字符串化的手段
 * public boolean equals(Object obj)  判断对象是否相等,是一个非常重要的方法
 * public int hashCode() 返回对象的哈希值,它也是一个非常重要的方法
 * protected void finalize() 这个方法没有实际意义
 *      在Java9中,该方法用注解`@Deprecated`标记它,表示它是一个过时的,弃用的方法
 * protected Object clone() 克隆,克隆得到一个对象.它是一种全新的创建对象的方式(不同于new对象)
 *
 * @since 09:35
 * @author wuguidong@cskaoyan.onaliyun.com
 */
public class Demo {
    public static void main(String[] args) {
        test();
    }

    // 被注解@Deprecated标记的方法是过时的方法,被弃用的方法,不推荐使用
    @Deprecated
    public static void test() {
    }
}

class A {
}

class B extends A {
}
